home *** CD-ROM | disk | FTP | other *** search
/ Reverse Code Engineering RCE CD +sandman 2000 / ReverseCodeEngineeringRceCdsandman2000.iso / RCE / Ebooks / Thinking in C++ V2 / C21 / MemFun2.cpp < prev    next >
Encoding:
C/C++ Source or Header  |  2000-05-25  |  723 b   |  32 lines

  1. //: C21:MemFun2.cpp
  2. // From Thinking in C++, 2nd Edition
  3. // Available at http://www.BruceEckel.com
  4. // (c) Bruce Eckel 1999
  5. // Copyright notice in Copyright.txt
  6. // Applying pointers to member functions
  7. #include <algorithm>
  8. #include <vector>
  9. #include <iostream>
  10. #include <functional>
  11. using namespace std;
  12.  
  13. class Angle {
  14.   int degrees;
  15. public:
  16.   Angle(int deg) : degrees(deg) {}
  17.   int mul(int times) {
  18.     return degrees *= times;
  19.   }
  20. };
  21.  
  22. int main() {
  23.   vector<Angle> va;
  24.   for(int i = 0; i < 50; i += 10)
  25.     va.push_back(Angle(i));
  26.   int x[] = { 1, 2, 3, 4, 5 };
  27.   transform(va.begin(), va.end(), x,
  28.     ostream_iterator<int>(cout, " "),
  29.     mem_fun_ref(&Angle::mul));
  30.   cout << endl;
  31. } ///:~
  32.